﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using ClaseBase;
using System.Collections.ObjectModel;
namespace Grupo04Playa
{
    /// <summary>
    /// Interaction logic for ABMusuario.xaml
    /// </summary>
    public partial class ABMusuario : Window
    {

       
        ObservableCollection<Usuario> listaUsuario;
        //CollectionViewSource listafiltrada;
        public ABMusuario()
        {
            InitializeComponent();
        }

        CollectionView vistaUsuario;
      
        private void btnUltimo_Click(object sender, RoutedEventArgs e)
        {
            vistaUsuario.MoveCurrentToLast();
        }

        private void btnPrimero_Click(object sender, RoutedEventArgs e)
        {
            vistaUsuario.MoveCurrentToFirst();
        }

        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            ObjectDataProvider odp = (ObjectDataProvider)this.Resources["usuarios"];
            listaUsuario = odp.Data as ObservableCollection<Usuario>;
            vistaUsuario = (CollectionView)CollectionViewSource.GetDefaultView(listaUsuario);
            
        }

        private void btnAnterior_Click(object sender, RoutedEventArgs e)
        {
            vistaUsuario.MoveCurrentToPrevious();
            if (vistaUsuario.IsCurrentBeforeFirst)
            {
                vistaUsuario.MoveCurrentToLast();
            }
        }

        private void btnSiguiente_Click(object sender, RoutedEventArgs e)
        {
            vistaUsuario.MoveCurrentToNext();
            if (vistaUsuario.IsCurrentAfterLast)
            {
                vistaUsuario.MoveCurrentToFirst();
            }
        }

        private void button4_Click(object sender, RoutedEventArgs e)
        {
            limpiar();
                            
        
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {


            ListadoDeUsuario m = new ListadoDeUsuario();

            m.Show();
        }

        public void limpiar() {

            txtApellido.Text = "";
            txtNombre.Text = "";
            txtPassword.Text = "";
            txtUserName.Text = "";

        }

        private void btnGuardar_Click(object sender, RoutedEventArgs e)
        {

             Usuario m = new Usuario();

            m.Apellido = txtApellido.Text;
            m.Nombre = txtNombre.Text;
            m.UserName = txtUserName.Text;
            m.Password = txtPassword.Text;

             string messageBoxText = "Desea guardar  los Datos:\n" + m.Apellido + "\n" + m.Nombre + "\n" + m.UserName + "\n" + m.Password;
            string mensaje = ":P";
            MessageBoxButton button = MessageBoxButton.YesNo;
            MessageBoxImage icon = MessageBoxImage.Warning;


            MessageBoxResult result = MessageBox.Show(messageBoxText, mensaje, button, icon);
            switch (result)
            {
                case MessageBoxResult.Yes:
                   listaUsuario.Add(m);
            vistaUsuario.MoveCurrentToLast();


                    MessageBox.Show("los datos se han agregado correctamente");





                    break;

                case MessageBoxResult.No:
                    // User pressed Cancel button
                    // ...

                    break;
            }

           

            

          
           
          
        }

        private void btnEliminar_Click(object sender, RoutedEventArgs e)
        {

            Usuario m = new Usuario();
            Usuario del = new Usuario();
            m.Apellido = txtApellido.Text;
            m.Nombre = txtNombre.Text;
            m.UserName = txtUserName.Text;
            m.Password = txtPassword.Text;




            foreach (Usuario usuario in listaUsuario)
            {
                if (usuario.Apellido == txtApellido.Text && usuario.Nombre == txtNombre.Text
                    && usuario.Password == txtPassword.Text && usuario.UserName == txtUserName.Text)
                {
                    del = usuario;
                }
            }

            string messageBoxText = "Desea  eliminar los Datos:\n" + m.Apellido + "\n" + m.Nombre + "\n" + m.UserName + "\n" + m.Password;
            string mensaje = ":P";
            MessageBoxButton button = MessageBoxButton.YesNo;
            MessageBoxImage icon = MessageBoxImage.Warning;


            MessageBoxResult result = MessageBox.Show(messageBoxText, mensaje, button, icon);
            switch (result)
            {
                case MessageBoxResult.Yes:
                     listaUsuario.Remove(del);
             vistaUsuario.MoveCurrentToFirst();

                    MessageBox.Show("los datos se eliminado correctamente");




                    
                    break;

                case MessageBoxResult.No:
                    // User pressed Cancel button
                    // ...

                    break;
            }

           

        }
    
    
    }
}
